This is an R Markdown document including the solutions to the laboratory 3 for the Data Driven Security subject of the Master in CyberSecurity Management.
Using the functions implemented in the file code.R.
source("./code.R")
Obtenemos la página web https://www.mediawiki.org/wiki/MediaWiki
pagina_web<-Obtener_pagina_web()
Obtenemos información de la página web, tal como el título o el dominio.
titulo<-Obtener_titulo(pagina_web)
dominio<-Obtener_dominio()
El título de la página web es MediaWiki. El dominio es www.mediawiki.org.
Estudiamos la estructura y el contenido de los datos para su posterior análisis.
Obtenemos los links de la página web y construimos un data frame con las URL y los textos de los enlaces. Se han eliminado aquellas observaciones que tenían cualquiera de las dos variables como NA. No se han eliminado aquellas observaciones que no tenían texto de enlace.
data_frame_enlaces <- Obtener_links(pagina_web)
summary(data_frame_enlaces)
## URL
## /wiki/MediaWiki : 4
## /wiki/Download : 3
## https://en.wikipedia.org/wiki/Wiki : 2
## https://en.wikipedia.org/wiki/Main_Page : 2
## /wiki/Project:Support_desk : 2
## /wiki/Special:MyLanguage/How_to_contribute: 2
## (Other) :166
## ENLACE
## : 7
## Wikipedia : 2
## Download : 2
## Contribute : 2
## MediaWiki Stakeholders' Group: 2
## MediaWiki.org : 1
## (Other) :165
Utilizamos la función HEAD de la librería httr y consultamos el código de retorno para cada petición hecha a cada uno de los links del data frame anterior. Antes de esto, y como tenemos URL relativas, es necesario completarlas añadiendo el dominio como prefijo, de tal manera que una dirección del tipo:
v_URL_completa <- Obtener_URL_completas(data_frame_enlaces)
df_expl_enlaces <- Explorar_enlaces(v_URL_completa)
## [1] "/wiki/EMWCon_Spring_2019"
se convierte en:
## [1] "www.mediawiki.org/wiki/EMWCon_Spring_2019/"
Obtenemos los siguientes códigos de retorno:
## [1] "200" "400" "404"
En este histograma mostramos el número de repeticiones de cada URL, haciendo una separación entre aquellas que aparecen como URL relativas o URL absolutas en la página web de consulta. El histograma se ha hecho interactivo,; al pasar por encima de las barras muestra la URL en concreto, el número de repeticiones y si es abosluta/relativa.
Plot_histogram(df_expl_enlaces)
En este gráfico de barras mostramos las URLs que incluyen “ww.mediawiki.org” en el enlace, teniendo en cuenta que las relativas lo incluyen todas (ya que se completó el enlace).
Nota:“NO_WIKI” son aquellas que no incluyen “ww.mediawiki.org”
Plot_bar(df_expl_enlaces)
En este gráfico se muestra el procentaje de cada uno de los códigos de retorno que nos ha devuelto las diferentes URLs.
Plot_pie(df_expl_enlaces)